////////////////////////////////////////////////////////////////////////////////

#ifndef _SWEAPON_H_
#define _SWEAPON_H_

////////////////////////////////////////////////////////////////////////////////

#ifndef _WEAPON_H_
#include "weapon.h"
#endif

#ifndef _SBULLET_H_
#include "sbullet.h"
#endif

////////////////////////////////////////////////////////////////////////////////


/** Base class for all weapons
*
*  @author   Anastasia Karpinska
*  @since    Nov 11th, 2009
*  @updated  Jan 24th, 2010
*/
class SWeapon : public Weapon
{
////////////////////////////////////////////////////////////////////////////////

public:

////////////////////////////////////////////////////////////////////////////////


    /** Constructor */
    SWeapon( size_t _reloadTime );


    /** Destructor */
    virtual ~SWeapon();


////////////////////////////////////////////////////////////////////////////////


    /** Update weapon time */
    void UpdateTime( size_t _dt );


    /** Is weapon reloading  */
    bool IsReloading() const;


    /** Reload */
    void Reload();


////////////////////////////////////////////////////////////////////////////////

private:

////////////////////////////////////////////////////////////////////////////////


    /** Time to the end of reloading */
    int m_TimeLeftBeforeCanShoot;


////////////////////////////////////////////////////////////////////////////////
};

////////////////////////////////////////////////////////////////////////////////

#endif

////////////////////////////////////////////////////////////////////////////////
